﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыПеречисленийПоИсполнительномуЛисту
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"3dc36601-7f9f-4272-8dcc-87522fa0ee6a\", \"Представление\":\"ЧерезКассуПлатежнымПоручением\"}")]
		ЧерезКассуПлатежнымПоручением = 0,//Через кассу платежным поручением
		[EnumMember(Value = "{\"Ссылка\":\"4296d1f3-4c9c-46cd-92d1-45570269691c\", \"Представление\":\"ПочтовыйПеревод\"}")]
		ПочтовыйПеревод = 1,//Почтовый перевод
		[EnumMember(Value = "{\"Ссылка\":\"ffbdbb3e-85ca-4eea-afa2-71d7492885f9\", \"Представление\":\"БанковскийПеревод\"}")]
		БанковскийПеревод = 2,//Банковский перевод
	}
	public static partial class СпособыПеречисленийПоИсполнительномуЛисту_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ЧерезКассуПлатежнымПоручением = new Guid("5287cc8d-a02f-6aee-4272-7f9f3dc36601");//Через кассу платежным поручением
		public static readonly Guid ПочтовыйПеревод = new Guid("5745d192-6902-1c69-46cd-4c9c4296d1f3");//Почтовый перевод
		public static readonly Guid БанковскийПеревод = new Guid("d771a2af-2849-f985-4eea-85caffbdbb3e");//Банковский перевод
		public static СпособыПеречисленийПоИсполнительномуЛисту Получить(this СпособыПеречисленийПоИсполнительномуЛисту Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыПеречисленийПоИсполнительномуЛисту Получить(this СпособыПеречисленийПоИсполнительномуЛисту Значение, Guid Ссылка)
		{
			if(Ссылка == ЧерезКассуПлатежнымПоручением)
			{
				return СпособыПеречисленийПоИсполнительномуЛисту.ЧерезКассуПлатежнымПоручением;
			}
			else if(Ссылка == ПочтовыйПеревод)
			{
				return СпособыПеречисленийПоИсполнительномуЛисту.ПочтовыйПеревод;
			}
			else if(Ссылка == БанковскийПеревод)
			{
				return СпособыПеречисленийПоИсполнительномуЛисту.БанковскийПеревод;
			}
			return СпособыПеречисленийПоИсполнительномуЛисту.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыПеречисленийПоИсполнительномуЛисту Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыПеречисленийПоИсполнительномуЛисту Значение)
		{
			switch (Значение)
			{
				case СпособыПеречисленийПоИсполнительномуЛисту.ЧерезКассуПлатежнымПоручением: return ЧерезКассуПлатежнымПоручением;
				case СпособыПеречисленийПоИсполнительномуЛисту.ПочтовыйПеревод: return ПочтовыйПеревод;
				case СпособыПеречисленийПоИсполнительномуЛисту.БанковскийПеревод: return БанковскийПеревод;
			}
			return Guid.Empty;
		}
	}
}